﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.Security.Cryptography;

public partial class LoginAdmin : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Master.FindControl("LogoutButton").Visible = false;
    }

    static string getMd5Hash(string input)
    {
        // Create a new instance of the MD5CryptoServiceProvider object.
        MD5 md5Hasher = MD5.Create();

        // Convert the input string to a byte array and compute the hash.
        byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));

        // Create a new Stringbuilder to collect the bytes
        // and create a string.
        StringBuilder sBuilder = new StringBuilder();

        // Loop through each byte of the hashed data 
        // and format each one as a hexadecimal string.
        for (int i = 0; i < data.Length; i++)
        {
            sBuilder.Append(data[i].ToString("x2"));
        }

        // Return the hexadecimal string.
        return sBuilder.ToString();
    }

    protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
    {
        DbUtilities Db= new DbUtilities();
        bool Authenticated = false;
        string hash = getMd5Hash(Login1.Password);
        Authenticated= Db.checkDatabaseForPassword(Login1.UserName, hash);

        if (Authenticated == true)
        {
            e.Authenticated = Authenticated;
            Session.Add("Username", "admin");
            Response.Redirect("~/Admin/WelcomeAdminUI.aspx");
        }

        else
        {
            e.Authenticated = false;
            Session.Add("Username", null);
        }
    }


    protected void LinkButton1_Click(object sender, EventArgs e)
    {
        Response.Redirect("~/ForgotPassword.aspx");
    }
}